package site.huoqiang.emos.service;

import site.huoqiang.emos.common.util.PageUtils;
import site.huoqiang.emos.pojo.User;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * @author: huoqiang huoqiang
 * @date: 2022-01-13
 */
public interface UserService {

    /**
     * 根据userId查询用户的权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    Set<String> searchUserPermissions(int userId);

    /**
     * 查询用户角色
     *
     * @param userId
     * @return
     */
    ArrayList<String> searchUserRoles(int userId);

    public HashMap createQrCode();

    public boolean checkQrCode(String code, String uuid);

    public HashMap wechatLogin(String uuid);

    public HashMap searchUserSummary(int userId);

    /**
     * 查询全部用户名称
     *
     * @return
     */
    ArrayList<HashMap> searchAllUser();


    /**
     * 根据ID查询用户信息
     *
     * @param userId
     * @return
     */
    public HashMap searchById(int userId);

    /**
     * 用户登陆
     *
     * @param param param
     * @return 用户ID
     */
    Integer login(HashMap param);

    /**
     * 修改密码
     *
     * @param param param
     * @return 影响行数
     */
    int updatePassword(HashMap param);

    /**
     * 添加用户
     *
     * @param user 用户实体
     * @return 影响行数
     */
    int insert(User user);

    /**
     * 查询用户分页记录
     *
     * @param param param
     * @return 用户分页记录
     */
    PageUtils searchUserByPage(HashMap param);

    /**
     * 修改用户
     *
     * @param param
     * @return
     */
    int update(HashMap param);

    /**
     * 删除用户
     *
     * @param ids 用户id
     * @return
     */
    int deleteUserByIds(Integer[] ids);

    /**
     * 查询用户名称和部门
     *
     * @param userId
     * @return
     */
    HashMap searchNameAndDept(int userId);

}
